13 - Mathematische Grundlagen zu Künstliche Intelligenz, Neuronale Netze und Data Analytics I [ID:22173]
50 von 967 angezeigt

Also guten Morgen zusammen. Wir wollen uns kurz noch mal als Überblick angucken, was wir bis jetzt gemacht haben.

Die erste Folie hier, die sollte eine mathematische Einführung von neuronalen Netzen darstellen,

in dem Sinne, dass ich eine Funktionenklasse beschreibe, die sich im Sinne der Differentialrechnung

dann sehr gut mit Kettenregelverfahren analysieren lässt.

Und da war eben die Idee, ja, das könnte man mit ganz vielen alternierenden Iterationen von linearer Algebra

nicht linearität machen. Und dieser Beweis von 1989, der sagt, es braucht gar nicht viele,

der ist natürlich auf der einen Seite mathematisch schön, wenn man sagt, ja, mit der Einfachheit

kommt man auch durch. Der hat aber historisch gesehen dazu geführt, dass viele Jahre lang die Leute

nicht um diese tieferen Netze gekümmert haben und deswegen, naja, der hat genützt, aber der hat auch geschadet.

Und die Acht und Weise, wie das dann wirklich gerechnet wird, sieht man am besten, wenn man sich gar nicht

auf die Umgegleichungen kümmert, sondern wenn man das in Form einer Architektur aufmalt, die darin besteht,

dass immer wenn ein Vektor vorkommt, mal ich ein Ellipsoid, immer wenn eine Matrix-Multiplikation vorkommt,

mache ich einen Fall. Wenn man das so hinschreibt, dann ist also praktisch dieses Bild hier genau das selbe

wie die Gleichung hier oben. Und die Systemidentifizierung heißt dann, nimm den Fehler, den du außerhalb

vom Netzwerk beobachtet hast und rechne den Stück für Stück rückwärts aus das ganze Netzwerk.

Und du brauchst dann nur eine Achtkreuzprodukt zwischen Vorwärts- und Rückwärtsfluss, um die ersten

Ableitungen der Errorfunktion hier zu bestimmen und damit eben eine Optimierung der Gewichte durchzuführen,

egal auf welchem Level hier. Und wenn das tausendmal größer ist, ist es immer noch lokal, sprich,

diese Denke, die funktioniert sehr gut für, die skaliert sehr gut für große Systeme. Und deswegen ist

ein ganz wichtiger Punkt bei dieser Neurogeschichte hier dieses Korrespondenzprinzip aus Gleichungen,

die man in Architekturen übersetzen kann, in denen nur lokale Algorithmen operieren.

Das haben wir uns dann im Detail angeguckt. Der Existenzbeweis, wie Neuronen tatsächlich arbeiten.

Dieser Beweis über die Kettenregel, wie dieser Algorithmus funktioniert, um den Vorwärtspass zu rechnen

und dann eben rückwärts diesen Error-Propagation-Pass und wie man dann eben aus der Rückwärtsinformation

und aus der Vorwärtsinformation hier die Rang-1-Matrix, die ersten Ableitungen von der Errorfunktion

an allen Gewichten hier bzw. hier kriegt. Und das ist natürlich erste Ableitung, sind schön,

aber was ist bitte der Gewichtsupdate, sprich, was ist der Update, um die neuen Gewichte in dem Modell zu kriegen?

Das einfachste Verfahren wäre natürlich steepest descent. Und das ist aber nicht zu referieren in unserem Kontext hier,

bessern ist pattern by pattern learning, weil das ist so schön zu berechnen.

Ich brauche immer nur ein Trainingsbeispiel im Rechner zu haben und dann vorwärts-rückwärts-pass zu rechnen.

Und dann kann ich die Gewichte updaten, dann werfe ich das Beispiel weg und gehe zum nächsten Trainingsbeispiel.

Dann kann man sich eben überlegen, dass das über alles hinweg so funktioniert wie steepest descent mit Rauschen.

Dieses Rauschen ist ja natürlich im ersten Gedankengang gut für Verhinderung von kleinen lokalen Minima.

Aber es ist eben auch gut, dass ich schnellere Konvergenz habe, weil wenn die Daten redundant sind,

was ja häufig genug vorkommt, dann habe ich die Situation, dass die redundanten Daten natürlich schon vorher

einen richtigen Gewichtsupdate machen. Und nicht erst, wenn ich statt dem lokalen Gradienten hier alle Beispiele durchgerechnet habe

und damit den kommunierten Gradienten rechne.

Dann haben wir uns mal angeguckt, wie könnte man denn das beschleunigen.

Und wenn ich das beschleunige, dann habe ich die Hoffnung, dass ich schneller in so Konvergenzpunkte reinkomme.

Dann habe ich ihnen eben nahegelegt, dass man das eben nicht machen sollte, weil das stochastische Lernverfahren,

also insbesondere dieses sehr einfache hier, führt zu einem sehr schönen Penalty-Tat.

Der sagt, mache einfache Modelle, wenn du widersprüchliche Daten hast.

Widersprüchliche Daten in dem Sinne, dass die Kräfte, die in Form von Gradienten an den Gewichten ziehen, sehr unterschiedlich sind.

Das würde ja heißen, wenn wir den Gewichtsatz ein kleines bisschen ändern, dann kommt da eben ein anderes Modell raus.

Während wenn wir so eine Situation haben, wie die Gewichte sind nur durch kleine Kräfte hängen im Gleichgewicht von kleinen Kräften.

Ja, wo, da kann ich auch eine Kraft wegleisten, da passiert nicht viel mit dem Gewicht.

Aber in der Situation hier würde, wenn man dieses Trainingsbeispiel weglässt, würde das Gewicht ganz anders hingehen.

Sprich, kriegen wir ein anderes Modell.

Dieser schönstmögliche Penalty-Tat hier, der wird mehr und mehr verdorben, wenn man sich darauf einlässt,

die Konvergenzgeschwindigkeit in Vordergrund zu stellen, wie in dem Beispiel hier.

Zugänglich über

Offener Zugang

Dauer

01:34:22 Min

Aufnahmedatum

2020-10-29

Hochgeladen am

2020-10-29 14:57:01

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen